package cn.xiaobai.j2exe.handler;

import cn.xiaobai.j2exe.CallBack;
import netscape.javascript.JSObject;

/**
 * js 连接器, 用于与 JavaScript 交互
 *
 * @Author yangdaji
 * @Date 2023/12/30
 * @PackageName cn.xiaobai.j2exe.handler
 * @ClassName JSConnector
 */
public class JSConnector {

    JSObject javascriptConnector;
    private CallBack<Object> callback;


    public JSConnector(JSObject javascriptConnector, CallBack<Object> callback) {
        this.javascriptConnector = javascriptConnector;
        this.callback = callback;
    }

    /**
     * js 调用方法
     *
     * @param value 传递的值
     */
    public void callJava(Object value) {
        // 回调方法
        callback.call(value);
    }

    /**
     * 向 js 发送数据,调用 js 方法
     *
     * @param jsMethodName js 方法名称
     * @param data         发送的数据
     * @return
     */
    public Object sendDataToJs(String jsMethodName, Object... data) {
        return javascriptConnector.call(jsMethodName, data);
    }

}